orDefault

fun <T> orDefault(block: () -> Promise<T>, fallback: (message: String?) -> Promise<T>, retries: Int = 3, baseMillis: Double = 200.0, factor: Double = 2.0): Promise<T>

Retries block with exponential backoff, falling back to fallback (given the error's message) if every attempt fails.